package com.shisfish.core.Test;

import java.util.Calendar;
import java.util.TimerTask;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Test implements ServletContextListener{
    private java.util.Timer timer = null; 
    public void contextInitialized(ServletContextEvent event) { 
        timer = new java.util.Timer(true); 
        event.getServletContext().log("定时器已启动");         
        timer.schedule(new MyTask(event.getServletContext()), 0,24*60*60*1000);  //每一天看一次
        event.getServletContext().log("已经添加任务调度表"); 
    } 
    public void contextDestroyed(ServletContextEvent event) { 
        timer.cancel(); 
        event.getServletContext().log("定时器销毁"); 
    } 
}

class MyTask extends TimerTask {

    private static final int C_SCHEDULE_HOUR = 0; //晚上0点时,执行
    private static boolean isRunning = false; 
    private ServletContext context = null; 
    public MyTask(ServletContext context) { 
        this.context = context; 
    } 
    public void run() { 
        
    	System.out.println("aaaa");
    	
    	Calendar cal = Calendar.getInstance();         
        if (!isRunning)  {            
            if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) {             
                isRunning = true;                 
                context.log("开始执行指定任务"); 
                 
                //TODO 添加自定义的详细任务，以下只是示例 
                int i = 0; 
                while (i++ < 10) { 
                    context.log("已完成任务的" + i + "/" + 10); 
                } 
                timerDoSomething();
                isRunning = false; 
                context.log("指定任务执行结束");                
            }             
        } else { 
            context.log("上一次任务执行还未结束"); 
        } 
    } 
  public static void timerDoSomething(){
 System.out.println("我已经执行了一次了!!!!!");
  }
}